/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.invest.model;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author ceatis
 */
@Entity
@Table(name = "JOGADORES")
public class Jogador implements Serializable, Comparable<Jogador> {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "COD_JOGADOR")
    private Integer codJogador;
    @Column(name = "NOME", length = 50, nullable = false)
    private String nome;
    @Column(name = "TELEFONE", length = 15)
    private String telefone;
    @Column(name = "EMAIL", length = 30)
    private String email;
    @Column(name = "LOGRADOURO", length = 50)
    private String logradouro;
    @Column(name = "BAIRRO", length = 20)
    private String bairro;
    @Column(name = "MUNICIPIO", length = 30)
    private String municipio;
    @Column(name = "ESTADO", length = 2)
    private String estado;
    @Column(name = "NUMERO_LOGRADOURO", length = 4)
    private Integer numeroLogradouro;
    @Column(name = "DATA_NASCIMENTO", length = 8)
    @Temporal(TemporalType.DATE)
    private Date dataNascimento;
    @ManyToOne(optional = false)
    @JoinColumn(name = "COD_GRUPO")
    private Grupo grupo;
    /*@ManyToOne(optional = false)
    @JoinTable(name="GRUPOS",
    joinColumns= {
    @JoinColumn(name = "COD_GRUPO", unique=true)    
    },
    inverseJoinColumns= {
    @JoinColumn(name="COD_JOGADOR")
    })
    
    private Grupo grupo;
     */

    public Jogador() {
    }

    public String getBairro() {
        return bairro;
    }

    public void setBairro(String bairro) {
        this.bairro = bairro;
    }

    public Grupo getGrupo() {
        return grupo;
    }

    public void setGrupo(Grupo grupo) {
        this.grupo = grupo;
    }

    public Integer getCodJogador() {
        return codJogador;
    }

    public void setCodJogador(Integer codJogador) {
        this.codJogador = codJogador;
    }

    public Date getDataNascimento() {
        return dataNascimento;
    }

    public void setDataNascimento(Date dataNascimento) {
        this.dataNascimento = dataNascimento;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public String getLogradouro() {
        return logradouro;
    }

    public void setLogradouro(String logradouro) {
        this.logradouro = logradouro;
    }

    public String getMunicipio() {
        return municipio;
    }

    public void setMunicipio(String municipio) {
        this.municipio = municipio;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public Integer getNumeroLogradouro() {
        return numeroLogradouro;
    }

    public void setNumeroLogradouro(Integer numeroLogradouro) {
        this.numeroLogradouro = numeroLogradouro;
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    @Override
    public String toString() {
        return this.nome;
    }

    public int compareTo(Jogador o) {
        return this.codJogador.compareTo(o.codJogador);
    }
}
